package club.kingyin.core;

/**
 * 整个 Spring 的核心组件，很多 context
 * 都基于 BeanFactory 扩展
 * @author : kingyins
 * @version : 1.0
 * @program : my-spring
 * @description : 创建Bean的工厂
 * @create : 2021年07月16日 14:53
 **/
public interface BeanFactory {

    /**
     * 获得 bean
     * @param beanName bean类名
     * @return bean实例
     */
    Object getBean(String beanName);

    /**
     * 获得 bean
     * @param beanName bean类名
     * @param beanClassType bean类型
     * @param <T> bean泛型
     * @return T
     */
    <T> T getBean(String beanName, Class<T> beanClassType);
}
